背景介绍
Define Model(定义模型):是深度学习中的基础内容,想使用深度学习方法解决实际问题,首先就需要建立一个模型,今天以LeNet-5模型为例,给入门的小伙伴们提供TensorFlow2.0三种自定义模型的方法。
第一种方法
通过**keras.Sequential来创建一个序列模型,也是最简单的一种模型创建方法,缺点也很明显,灵活度很低,不能共享某一层,不能有分支,不能有多个输入输出。只适合于串联模型的创建(如VGG16),不适合并联模型的创建(如Inception-V3,ResNet50)**。
1 | import tensorflow.keras as keras |
第二种方法
通过函数API来创建一个模型,是一种灵活的方式,可以定义更加复杂的模型,灵活度很高,可以共享层,可以分支,且可以满足多个输入输出。
1 | import tensorflow.keras as keras |
第三种方法
通过继承keras.Model来创建模型,是一种最灵活的方式,可以满足任何模型的定义,但是难度也更大,必须通过重载call函数自定义调用方式。
1 | import tensorflow.keras as keras |
小结
模型的定义没有固定的方式,小伙伴们可以根据平时的代码习惯进行选择,但是第二种方法和第三种方法必须要掌握一种,否则很难定义复杂的网络模型,希望小伙伴们可以多多练习。